#include "Tetromino.h"

const UTetrominoI::FTetrominoShape UTetrominoI::Shapes[UTetrominoI::ShapeNum] =
{
	{FTetrominoShape{}},
	{FTetrominoShape{}},
	{FTetrominoShape{}},
	{FTetrominoShape{}},
};

const UTetrominoI::FTetrominoShape UTetrominoO::Shapes[UTetrominoO::ShapeNum] =
{
	{FTetrominoShape{}},
};

const UTetrominoI::FTetrominoShape UTetrominoT::Shapes[UTetrominoT::ShapeNum] =
{
	{FTetrominoShape{}},
	{FTetrominoShape{}},
	{FTetrominoShape{}},
	{FTetrominoShape{}},
};

const UTetrominoI::FTetrominoShape UTetrominoJ::Shapes[UTetrominoJ::ShapeNum] =
{
	{FTetrominoShape{}},
	{FTetrominoShape{}},
	{FTetrominoShape{}},
	{FTetrominoShape{}},
};

const UTetrominoI::FTetrominoShape UTetrominoL::Shapes[UTetrominoL::ShapeNum] =
{
	{FTetrominoShape{}},
	{FTetrominoShape{}},
	{FTetrominoShape{}},
	{FTetrominoShape{}},
};

const UTetrominoI::FTetrominoShape UTetrominoS::Shapes[UTetrominoS::ShapeNum] =
{
	{FTetrominoShape{}},
	{FTetrominoShape{}},
	{FTetrominoShape{}},
	{FTetrominoShape{}},
};

const UTetrominoI::FTetrominoShape UTetrominoZ::Shapes[ShapeNum] =
{
	{FTetrominoShape{}},
	{FTetrominoShape{}},
	{FTetrominoShape{}},
	{FTetrominoShape{}},
};

UTetrominoI::FTetrominoShape UTetrominoI::GetShape(uint32 Index) const
{
	return Shapes[Index % ShapeNum];
}

UTetrominoO::FTetrominoShape UTetrominoO::GetShape(uint32 Index) const
{
	return Shapes[Index % ShapeNum];
}

UTetrominoT::FTetrominoShape UTetrominoT::GetShape(uint32 Index) const
{
	return Shapes[Index % ShapeNum];
}

UTetrominoJ::FTetrominoShape UTetrominoJ::GetShape(uint32 Index) const
{
	return Shapes[Index % ShapeNum];
}

UTetrominoL::FTetrominoShape UTetrominoL::GetShape(uint32 Index) const
{
	return Shapes[Index % ShapeNum];
}

UTetrominoS::FTetrominoShape UTetrominoS::GetShape(uint32 Index) const
{
	return Shapes[Index % ShapeNum];
}

UTetrominoZ::FTetrominoShape UTetrominoZ::GetShape(uint32 Index) const
{
	return Shapes[Index % ShapeNum];
}
